La computazione ad alte prestazioni moderna affronta un fondamentale "Parete della memoria": la crescita esponenziale del rendimento computazionale (FLOPS) ha superato di gran lunga gli incrementi modesti in banda della memoria globale banda. Questa discrepanza trasforma i grandi array multicore in processori "affamati" che aspettano dati.
1. La lacuna di banda
Mentre una GPU può eseguire trilioni di operazioni al secondo, il percorso fisico verso la DRAM è limitato dalla densità dei pin e dai requisiti di potenza. La memoria come fattore limitante della parallelizzazione significa che man mano che aumenti il numero di thread, la banda disponibile per ogni thread diminuisce, portando a cicli di attesa in cui l'hardware rimane inattivo.
2. L'analogia della cucina
Immagina una cucina all'avanguardia (i core della GPU) in grado di preparare 1.000 pasti all'ora. Tuttavia, gli ingredienti si trovano in un magazzino (la memoria globale) a cinque chilometri di distanza, e c'è solo un'unica motocicletta per le consegne (il bus della memoria). Non importa quanti cuochi assumi, il tuo output è limitato dalla velocità della motocicletta.
3. Confronto architetturale
Un sistema CPU multicore standard sistema multicore CPU utilizza grandi cache per nascondere la latenza per pochi thread pesanti. Le architetture parallele su larga scala, tuttavia, affrontano un continuo "ingorgo" di richieste concorrenti. Limitazioni di risorse a livello di registri e memoria condivisa determinano il livello massimo di parallelismo (occupazione) raggiungibile prima che l'hardware sia sopraffatto.